package 开始的剑指offer8月.面经常用算法题09开始的;
import java.util.Stack;
// https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6?tpId=188&&tqId=38552&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking
public class NC76用两个栈实现队列0901 {
//    算法思想：双栈（此题已明确解题方法即双栈）

    //push操作就直接往stack1中push，
// pop操作需要分类一下：如果stack2为空，
// 那么需要将stack1中的数据转移到stack2中，
// 然后在对stack2进行pop，如果stack2不为空，直接pop就ok。
// 时间复杂度：push操作为O(1),pop操作为O(1)
// 空间复杂度：需要stack来存，O(n)
    public class Solution {
        Stack<Integer> stack1 = new Stack<Integer>();
        Stack<Integer> stack2 = new Stack<Integer>();

        public void push(int node) {
            stack1.push(node);
        }

        public int pop() {
            if (stack2.size() <= 0){
                while (stack1.size() != 0){
                    stack2.push(stack1.pop());
                }
            }
            return stack2.pop();
        }
    }
}
